package com.dopios.services.persistance.dao;


import com.dopios.services.persistance.domain.CityAdvice;
import org.springframework.dao.DataAccessException;

import java.util.List;
import java.util.Map;

/**
 * This class is project specific. It is the interface that establishes the methods that the dao provides. I serves as the interface with the database.
 */
public interface AdviceDao {
    public int addCityAdvice(CityAdvice advice) throws DataAccessException;
    public List<CityAdvice> getListCityAdvicesByCityUser(String user, String city);
    public List<CityAdvice> getListCityAdvicesByCity( String city);
    public void addTagsForCityAdvice(int adviceId, List<Map<String,Object>> matchedTags) throws DataAccessException;
    public boolean checkUserExists(String user);
    public boolean checkCityExists(String city);
    public int getUserIdByUsername(String username);
    public void updateAddUserAdvicesRatings(List<CityAdvice> cityAdvices,int userId);
    public void updateUserVisibilityExclusion(int userId,int excludedUserId);
    public List<Map<String, Object>> getTagsKeywords();

}
